Verifying Whiley Programs with Boogie

نویسندگان

چکیده

Abstract The quest to develop increasingly sophisticated verification systems continues unabated. Tools such as Dafny, Spec#, ESC/Java, SPARK Ada and Whiley attempt seamlessly integrate specification into a programming language, in similar way type checking. A common integration approach is generate conditions that are handed off an automated theorem prover. This provides nice separation of concerns allows different provers be used interchangeably. However, generating still difficult undertaking the use more “high-level” intermediate languages has become commonplace. In particular, Boogie widely understood language. difficulty potential for impedance mismatch between source language this paper, we explore verifying programs Whiley. noteworthy because (amongst other things) rich system with considerable mismatch. We provide comprehensive account translating which demonstrates it possible model most aspects Key challenges posed by included: encoding Whiley’s expressive support flow typing generics; implicit assumption expressions specifications well defined; ability invoke methods from within expressions; return multiple values function or method; presence unrestricted lambda functions; limited syntax framing. demonstrate resulting tool can verify significantly than native verifier was custom-built verification. Furthermore, our work evidence (for part) sufficiently general act wide range languages.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Verifying Eiffel Programs with Boogie

Static program verifiers such as Spec#, Dafny, jStar, and VeriFast define the state of the art in automated functional verification techniques. The next open challenges are to make verification tools usable even by programmers not fluent in formal techniques. This paper presents AutoProof, a verification tool that translates Eiffel programs to Boogie and uses the Boogie verifier to prove them. ...

متن کامل

Reflections on Verifying Software with Whiley

An ongoing challenge for computer science is the development of a tool which automatically verifies that programs meet their specifications, and are free from runtime errors such as divide-by-zero, array out-of-bounds and null dereferences. Several impressive systems have been developed to this end, such as ESC/Java and Spec#, which build on existing programming languages (e.g. Java, C#). Unfor...

متن کامل

Bound Analysis for Whiley Programs

The Whiley compiler can generate naive C code, but the code is inefficient because it uses infinite integers and dynamic array sizes. Our project goal is to build up a compiler that can translate Whiley programs into efficient OpenCL code with fixed-size integer types and fixed-size arrays, for parallel execution on GPUs. This paper presents an abstract interpretation-based bound inference appr...

متن کامل

Designing a verifying compiler: Lessons learned from developing Whiley

Article history: Received 30 April 2014 Received in revised form 27 September 2015 Accepted 29 September 2015 Available online xxxx

متن کامل

Verifying Programs with Unreliable Channels

We consider the verification of a particular class of infinite-state systems, namely systems consisting of finite-state processes that communicate via unbounded lossy FIFO channels. This class is able to model, e.g., link protocols such as the Alternating Bit Protocol and HDLC. For this class of systems, we show that several interesting verification problems are decidable by giving algorithms f...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: Journal of Automated Reasoning

سال: 2022

ISSN: ['0168-7433', '1573-0670']

DOI: https://doi.org/10.1007/s10817-022-09619-1